#include<iostream>
using namespace std;


// 打印二维数组
void print(int (&p)[3][2] ){
    for(int i=0; i<3; i++){
        for(int j=0; j<2; j++){
            cout << p[i][j] << "\t";
        }
        cout << endl;
    }
    cout << endl;
}


// 多维数组的初始化
int main(){
    // 1. 使用花括号括起来的一组值初始化多维数组
    int arr[3][2]={ //3个元素，每个元素是长度为2的数组
        {1,2},   //第一行初始化
        {10,20},  //第二行初始化
        {100,200}  //第三行初始化
    };
    print(arr);

    // 内层的花括号不是必须的。
    // 2. 更简洁的
    int arr2[3][2]={1,2,10,20,100,200};
    print(arr2);
    
    // 并不是必须每个值都要初始化。
    // 3. 显式的初始化每一行的首元素
    int arr3[3][2]={ {1}, {10}, {100}}; //其他未列出的元素执行默认值初始化
    print(arr3);

    //4. 上文如果不加内层花括号，则结果不同
    int arr4[3][2]={1,10,100}; //表示只初始化第一行2个元素和第二行第一个元素，其余都是0
    print(arr4);

    return 0;
}